package com.eelpo.cmmp.core.wicket.panel.paging;

import java.util.Iterator;

import org.apache.wicket.model.IModel;

/**
 * 动态分页接口定义
 * 
 * @author <a href="mailto:Brian@eelpo.com">汪洪州</a>
 * @since 1.0
 */
public interface IDynamicPaing<T extends ISort> {

	/**
	 * 返回分页数据迭代器
	 * 
	 * @param parameter
	 *            查询参数
	 * @param first
	 *            分页查询的起始条数
	 * @param count
	 *            分页查询的总记录条数
	 * @return 返回分页数据迭代器
	 * @throws Exception
	 *             抛出所有异常
	 */
	public Iterator<? extends T> iterator(T parameter, int first, int count) throws Exception;

	/**
	 * /** 查询记录总数
	 * 
	 * @param parameter
	 *            查询参数
	 * @return 返回记录总数
	 * @throws Exception
	 *             抛出所有异常
	 */
	public int totalRows(T parameter) throws Exception;

	/**
	 * 列表绑定的单条数据
	 * 
	 * @param obj
	 *            实体对象
	 * @return 返回IModel封装的实体对象
	 */
	public IModel<T> model(T obj);
}
